1 SBW comparison of CASAL and Casal2 model configurations

This document compares the results of at least 2 CASAL model configurations (base and at least one sensitivity) and up to 8 Casal2 model configurations (3 BetaDiff, 2 CppAD, and 3 ADOL-C).

The CASAL model sensitivity 1 has a smaller minimisation tolerance value than the CASAL base model (1e-8 vs. 2e-6).

The Casal2 ADOL-C and BetaDiff low tolerance models have a smaller tolerance value than the CASAL base model (1e-8 vs. 2e-6). The Casal2 CppAD models have a tolerance value of 1e-9.

1.1 SBW model characteristics

The main characteristics of the Test Case SBW (southern blue whiting) CASAL model are:

  • one stock, ages 2 - 15
  • two areas, spawn and nospawn
  • years 1960 - 2015, projection years 2016 - 2021
  • two time steps
  • two stock categories, male and female
  • sex-specific migration from 'nospawn' to 'spawn'
  • male and female natural mortality (M) average of 0.2, difference of 0.02
  • Beverton-Holt stock-recruitment relationship, with steepness (h) 0.9 and \(\sigma_R\) 1.0
  • length-weight relationship (\(W = aL^b\))
  • no ageing error
  • one fishery in area 'spawn'

Observation data include:

  • empirical sex-specific length-at-age data for 1979 - 2015
  • survey indices for immature and mature partitions
  • fishery sex-specific proportions-at-age

Parameters estimated include:

  • B0
  • process error for the mature survey index
  • the average of and difference between male and female natural mortality
  • sex-specific migration rates
  • YCS (recruitment deviations)

1.2 SBW model MCMC specifications

The CASAL MCMC options include

  • start 0
  • length 11000000
  • keep 10000
  • burn_in 100
  • stepsize 0.002
  • systematic True
  • adaptive_stepsize True
  • proposal_t True
  • adapt_at 50000 100000 150000 200000 500000

The Casal2 ADOL-C and BetaDiff MCMC options include

  • start 0
  • length 11000000
  • keep 10000
  • step_size 0.002
  • proposal_distribution t
  • adapt_stepsize_at 50000 100000 150000 200000 500000
  • adapt_stepsize_method double_half
  • max_correlation 0.8

The Casal2 CppAD MCMC runs use the BetaDiff covariance matrices since Casal2 does not output the covariance matrix from CppAD minimisation. The Casal2 CppAD MCMC options include

  • start 0
  • length 12000000 # originally 11M
  • keep 10000
  • step_size 0.002
  • proposal_distribution t
  • adapt_stepsize_at 50000 100000 150000 200000 500000
  • adapt_stepsize_method double_half
  • max_correlation 0.9
  • adapt_covariance_matrix_at 1000000

1.3 R environment

## [1] "Fri Jul 31 12:18:47 2020"
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-redhat-linux-gnu (64-bit)
## Running under: CentOS Linux 7 (Core)
## 
## Matrix products: default
## BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
## 
## locale:
##  [1] LC_CTYPE=en_NZ.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_NZ.UTF-8        LC_COLLATE=en_NZ.UTF-8    
##  [5] LC_MONETARY=en_NZ.UTF-8    LC_MESSAGES=en_NZ.UTF-8   
##  [7] LC_PAPER=en_GB.UTF_8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_NZ.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] casal2_1.0     casal_2.30     devtools_2.3.1 usethis_1.6.1  ggthemes_4.2.0
##  [6] gridExtra_2.3  coda_0.19-3    ggmcmc_1.4.1   ggplot2_3.3.2  tidyr_1.1.0   
## [11] dplyr_0.8.5   
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.1.0   xfun_0.16          remotes_2.2.0      purrr_0.3.4       
##  [5] lattice_0.20-38    colorspace_1.4-1   vctrs_0.3.2        testthat_2.3.2    
##  [9] htmltools_0.5.0    yaml_2.2.1         rlang_0.4.7        pkgbuild_1.1.0    
## [13] pillar_1.4.6       glue_1.4.1         withr_2.2.0        RColorBrewer_1.1-2
## [17] sessioninfo_1.1.1  lifecycle_0.2.0    plyr_1.8.6         stringr_1.4.0     
## [21] munsell_0.5.0      gtable_0.3.0       evaluate_0.14      memoise_1.1.0     
## [25] knitr_1.29         GGally_1.4.0       callr_3.4.3        ps_1.3.3          
## [29] fansi_0.4.1        Rcpp_1.0.5         scales_1.1.1       backports_1.1.8   
## [33] desc_1.2.0         pkgload_1.1.0      fs_1.4.2           digest_0.6.25     
## [37] stringi_1.4.6      processx_3.4.3     grid_3.6.0         rprojroot_1.3-2   
## [41] cli_2.0.2          tools_3.6.0        magrittr_1.5       tibble_3.0.3      
## [45] crayon_1.3.4       pkgconfig_2.0.3    ellipsis_0.3.1     prettyunits_1.1.1 
## [49] assertthat_0.2.1   rmarkdown_2.3      reshape_0.8.8      R6_2.4.1          
## [53] compiler_3.6.0

1.4 CASAL and Casal2 model output

# source('../../R-functions/report_read_in_CASAL_MPD_files.R')
source('../../R-functions/report_read_in_CASAL_MCMC_files.R')
source('../../R-functions/report_read_in_Casal2_MPD_files.R')
source('../../R-functions/report_read_in_Casal2_MCMC_files.R')

1.5 MCMC diagnostics

1.5.1 Diagnostics for the CASAL and Casal2 model MCMC results

For the diagnostics below, the last 1000 samples for each chain are used, so that 1000 samples are input into the diagnostic functions.